package com.easyctba.core.util;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;

public class ListUtil {

    /**
     * “[[1,2],[2,3]]”形式字符串转二维数组
     * @param input 输入字符串
     * @return 二维数组
     */
    public List<List<Integer>> convertToList(String input) {
        // 去除字符串两端的空格
        input = input.trim();

        // 使用正则表达式匹配内部列表
        Pattern pattern = Pattern.compile("\\[(\\d+,\\s*\\d+)\\]");
        Matcher matcher = pattern.matcher(input);

        List<List<Integer>> result = new ArrayList<>();
        while (matcher.find()) {
            // 匹配到的每个内部列表字符串，例如 "0, 5"
            String innerListStr = matcher.group(1);
            // 使用逗号分割内部列表字符串，并转换为整数列表
            List<Integer> innerList = Arrays.stream(innerListStr.split(","))
                .map(String::trim) // 去除每个整数前后的空格
                .map(Integer::parseInt)
                .collect(Collectors.toList());
            result.add(innerList);
        }

        return result;
    }

    /**
     * 将字符串型List转List<String>
     * @param input 需要转换的字符串
     * @return 转换后List
     */
    public List<String> convertStringToArrayList(String input) {
        input = input.substring(1, input.length() - 1);
        String[] split = input.split(",");
        return Arrays.stream(split).map(String::trim).toList();
    }
}
